/*
 * ipassstitching.h
 *
 *  Created on: Mar 3, 2013
 *      Author: rdu
 */

#ifndef IPASSSTITCHING_H_
#define IPASSSTITCHING_H_

#include "wx/wx.h"

#include "opencv/cv.h"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/opencv_modules.hpp"
#include "opencv2/stitching/detail/autocalib.hpp"
#include "opencv2/stitching/detail/blenders.hpp"
#include "opencv2/stitching/detail/camera.hpp"
#include "opencv2/stitching/detail/exposure_compensate.hpp"
#include "opencv2/stitching/detail/matchers.hpp"
#include "opencv2/stitching/detail/motion_estimators.hpp"
#include "opencv2/stitching/detail/seam_finders.hpp"
#include "opencv2/stitching/detail/util.hpp"
#include "opencv2/stitching/detail/warpers.hpp"
#include "opencv2/stitching/warpers.hpp"

using namespace std;
using namespace cv;
using namespace cv::detail;

class IpassStitching
{
public:
	IpassStitching();
	~IpassStitching();

public:


protected:
	vector<string> m_sImageNames;
	vector<Mat> m_cvImages;
	vector<Size> m_imageSize;
	vector<ImageFeatures> m_imageFeatures;
	vector<MatchesInfo> m_pairwiseMatches;
	Mat m_stitchedImage;


private:
	void LoadImages();
	void FindMatchFeatures();


public:
	void StitchImages();
	Mat GetStitchedImage();
};


#endif /* IPASSSTITCHING_H_ */
